package cn.pid21.client.model;

import lombok.Data;

import java.util.Map;

/**
 * PID 客户端 YML 配置类
 *
 * @author 郭志斌
 * @version 1.0.0
 * <b>Creation Time:</b> 2019/8/15 12:03
 */
@Data
public class DataReportClientConfig {

    /**
     * 默认配置文件名称
     */
    public static final String PID_CLIENT_CONFIG = "data-report-client.yml";

    /**
     * 属性名称 - 客户端版本号
     */
    public static final String PID_CLIENT_VERSION = "version";

    /**
     * 属性名称 - 使用 http client 名称
     */
    public static final String PID_CLIENT_HTTP_NAME = "okHttpClient";

    /**
     * 属性名称 - 连接时时间
     */
    public static final String PID_CLIENT_HTTP_CONNECT_TIMEOUT = "connectTimeout";

    /**
     * 属性名称 - 写超时时间
     */
    public static final String PID_CLIENT_HTTP_WRITE_TIMEOUT = "writeTimeout";

    /**
     * 属性名称 - 读超时时间
     */
    public static final String PID_CLIENT_HTTP_READ_TIMEOUT = "readTimeout";

    /**
     * 配置属性信息
     */
    private Map<String,Object> pidClient;

    /**
     * 获取 PID 客户端版本
     * @return String
     */
    public String getVersion(){
        return pidClient.get(PID_CLIENT_VERSION).toString();
    }

    /**
     * 获取 PID 客户端 HTTP CLIENT 名称
     * @return Map<String,Object>
     */
    public Map<String,Object> getOkHttpClientConfig(){
        return (Map<String, Object>) pidClient.get(PID_CLIENT_HTTP_NAME);
    }

    /**
     * 连接超时时间 - 秒
     *
     * @return int
     */
    public int getConnectTimeout(){
        return Integer.parseInt(getOkHttpClientConfig().get(PID_CLIENT_HTTP_CONNECT_TIMEOUT).toString());
    }

    /**
     * 写超时时间 - 秒
     *
     * @return int
     */
    public int getWriteTimeout(){
        return Integer.parseInt(getOkHttpClientConfig().get(PID_CLIENT_HTTP_WRITE_TIMEOUT).toString());
    }

    /**
     * 读超时时间 - 秒
     *
     * @return int
     */
    public int getReadTimeout(){
        return Integer.parseInt(getOkHttpClientConfig().get(PID_CLIENT_HTTP_READ_TIMEOUT).toString());
    }

}
